楼主使用的教材是周志明著的第二版《深入理解java虚拟机》,如果觉得笔记写的不错,想更好的学习,建议和楼主使用的书籍一样。周志明写的《深入理解java虚拟机》被认为java程序员必读书籍,jvm书籍NO.1。一般这类书籍至少读三遍,有时间,可以反复读,每一遍都会有不同的收获。
笔记一:对应原书的第一部分、第一章:走进java
1.1 概述
java的优点:
1)实现了跨平台,摆脱硬件平台的约束,“一次编写,到处运行”;
2)自动回收机制,提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄漏和指针越界问题;
3)拥有完善的应用程序接口,有很多开源的第三方类库来实现各种不同的功能,并且还在在不断的扩充中;
4)实现热代码检测和运行时编译及优化,使得java应用程序随着运行时间的增加而获得更高的性能。(这点楼主看的不是特别明白,也许在看第二遍,第三遍时会理解的更好)
1.2 java技术体系
从传统意义上来看,Sun官方所定义的java技术体系包括以下几个部分:
- java程序设计语言
- 各种硬件平台上的java虚拟机
- Class文件格式
- java API类库
- 来自商业机构和开源社区第三方的java类库
java程序设计语言、java虚拟机、java API类库三部分统称JDK(Java Developmentment Kit),JDK是用于支持java程序开发的最小环境系统。另外,可以把java API类库中的java SE API子集和java虚拟机这两部分统称为JRE,JRE是支持java程序运行的标准环境。
java技术体系所包含的内容
按照java技术关注的重点业务领域来划分,java技术体系可以分为4个平台,分别是:
- Java Card:运行在小内存设备上的平台的小程序(Applets),如:智能卡。
- Java ME(Micro Edition):运行在移动终端平台,如:手机,Pad等。对Java API有所精简,但加入了对移动终端的支持,以前此版本称之为J2ME。
- Java SE(Standard Edition):面向桌面级应用的java平台,提供完整的java核心API,如:windows下的应用程序。
- Java EE(Enterprise Edition):支持使用多框架的企业应用(在公司上班,多做的是这方面的工作)。
1.3 java发展史
这部分就不累赘了,网上有很丰富的资源供了解。
1.4 java虚拟机发展史
1.5 展望java技术的未来
1)模块化:解决应用系统与技术平台越来越复杂、越来越庞大问题的一个重要途径。
2)混合语言:单一的语言去完成一项庞大的任务成本高、开发不易等缺点,利用各项语言的优点结合使用。
3)多核并行:CPU硬件已经从高频率向多核转变。
4)进一步丰富语法。
5)64位虚拟机。
1.6 实战:自己编译JDK
这部分还没学会,在此笔记先不写出。
- 下载OpenJDK:https://jdk7.java.net/source.html
- 系统需求:Ubuntu 64位、5GB的磁盘、1G内存;
- 构建编译环境:需要Bootstrap JDK(JDK6以上)/Ant(1.7.1以上)/GCC。
1.7 本章小结
本章节介绍了java的过去、今天和将来,没有太多的知识点(除1.6节),仅是些了解、记忆的知识。作为《深入理解java虚拟机》全书的引言部分,是全书的奠基部分。